home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / lib / ditroff / tmac.unix < prev    next >
Text File  |  1991-07-10  |  10KB  |  544 lines

  1. .\" This file contains a combination of the BSD -man macros and the Sprite
  2. .\" man macro additions which are stored in tmac.sprite.  This file is
  3. .\" useful for sending to UNIX systems with Sprite man pages, so that the
  4. .\" man pages may be formatted correctly.
  5. .\"
  6. .\" Copyright (c) 1980 Regents of the University of California.
  7. .\" All rights reserved.  The Berkeley software License Agreement
  8. .\" specifies the terms and conditions for redistribution.
  9. .\"
  10. .\"    @(#)tmac.an.new    6.3 (Berkeley) 2/2/86
  11. .\"
  12. '    DT, PD, SM, and B macros invoked internally.
  13. '    # month name
  14. .if "\nd"0" .nr m \n(mo-1
  15. .if "\nm"0" .ds ]m January
  16. .if "\nm"1" .ds ]m February
  17. .if "\nm"2" .ds ]m March
  18. .if "\nm"3" .ds ]m April
  19. .if "\nm"4" .ds ]m May
  20. .if "\nm"5" .ds ]m June
  21. .if "\nm"6" .ds ]m July
  22. .if "\nm"7" .ds ]m August
  23. .if "\nm"8" .ds ]m September
  24. .if "\nm"9" .ds ]m October
  25. .if "\nm"10" .ds ]m November
  26. .if "\nm"11" .ds ]m December
  27. '    # set the date
  28. .if n \{.nr m \nm+1
  29. .     ie \nd .ds ]W Modified \nm/\nd/\ny
  30. .     el .ds ]W Printed \n(mo/\n(dy/\n(yr\}
  31. .if t \{.ie \nd .ds ]W \*(]m \nd, 19\ny
  32. .     el .ds ]W \*(]m \n(dy, 19\n(yr\}
  33. .if t .ds ]W Sprite version 1.0
  34. .if n .ds ]W Sprite v1.0
  35. .if t .tr *\(**
  36. .ie n \{\
  37. .    ds lq \&"\"
  38. .    ds rq \&"\"
  39. .\}
  40. .el \{\
  41. .    ds rq ''
  42. .    ds lq ``
  43. .\}
  44. '    # reset the basic page layout
  45. .de }E
  46. .}f
  47. .in \\n()Ru+\\n(INu
  48. .ll \\n(LLu
  49. ..
  50. '    # default tabs
  51. .de DT
  52. 'ta .5i 1i 1.5i 2i 2.5i 3i 3.5i 4i 4.5i 5i 5.5i 6i 6.5i
  53. ..
  54. '    # set type font and size
  55. .de }f
  56. .ps 10
  57. .ft 1
  58. ..
  59. '    # handle the head of the page
  60. .de }H
  61. .ev 1
  62. .}C
  63. .ie "\*(.T"va" 'sp .1i
  64. .el 'sp .5i
  65. .ft 1
  66. .ps 10
  67. .tl @\\*(]H@\\*(]D@\\*(]H@
  68. 'sp .5i
  69. .ev
  70. .ns
  71. ..
  72. '    # handle the foot of the page
  73. .de }F
  74. .ev 1
  75. .ft 1
  76. .ps 10
  77. 'sp .5i
  78. .tl @\\*(]W@\\*(]L@%@
  79. 'bp
  80. .ev
  81. ..
  82. '    # the cut mark
  83. .if !"\*(.T"vp" .ig
  84. .de }C
  85. .po 0i
  86. .lt 7.45i
  87. .tl '__''__'
  88. .po
  89. .lt
  90. ..
  91. '    # the final cut mark
  92. .de }M
  93. .}N
  94. .wh -1p }C
  95. .ll \\n(LLu
  96. ..
  97. '    # no runout unless there was a .TH
  98. .de }K
  99. .}N
  100. .pl 1
  101. .ll \\n(LLu
  102. ..
  103. .em }K
  104. '    # set title and heading
  105. .de TH
  106. .PD
  107. .if n .nr IN .5i
  108. .if t .nr IN .5i
  109. .nr LL \\n(.l
  110. .ds ]H \\$1
  111. .ds ]D UNKNOWN MANUAL SECTION
  112. .if '\\$2'1' .ds ]D User Commands
  113. .if '\\$2'1C' .ds ]D User Commands
  114. .if '\\$2'1L' .ds ]D User Commands
  115. .if '\\$2'6' .ds ]D Games and Demos
  116. .if '\\$2'7' .ds ]D Tables
  117. .if '\\$2'2' .ds ]D C Library Procedures
  118. .if '\\$2'3' .ds ]D C Library Procedures
  119. .if '\\$2'3C' .ds ]D C Library Procedures
  120. .if '\\$2'3F' .ds ]D Fortran Library Procedures
  121. .if '\\$2'3S' .ds ]D C Library Procedures
  122. .if '\\$2'3M' .ds ]D Mathematical Library Procedures
  123. .if '\\$2'3N' .ds ]D C Library Procedures
  124. .if '\\$2'3R' .ds ]D RPC Services
  125. .if '\\$2'3X' .ds ]D C Library Procedures
  126. .if '\\$2'5' .ds ]D File Formats
  127. .if '\\$2'4' .ds ]D Devices
  128. .if '\\$2'8' .ds ]D User Commands
  129. .ds ]L\"
  130. .if !"\\$3"" .ds ]L \\$3
  131. .if !"\\$4"" .ds ]W \\$4
  132. .wh 0 }H
  133. .if t .if !"\*(.T"va" .wh -1i }F
  134. .if t .if "\*(.T"va" .wh -1.4i }F
  135. .if n .wh -1.167i }F
  136. .em }M
  137. .if \\n(nl .bp 1
  138. .}E
  139. .DT
  140. .nr )I .5i
  141. .nr )R 0
  142. .if n .na
  143. ..
  144. '    # section heading
  145. .de SH
  146. .ss 12
  147. .if "\\$1"SYNOPSIS" .ss 18
  148. .}X 0
  149. .nr )E 2
  150. .SM
  151. \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6
  152. ..
  153. '    # sub section heading
  154. .de SS
  155. .ne 4
  156. .}X \\n()Ru+\\n(INu ""
  157. \&\\$1 \|\\$2 \|\\$3 \|\\$4 \|\\$5 \|\\$6
  158. .br
  159. ..
  160. '    # subroutine for section heading
  161. .de }X
  162. .}E
  163. .ti \\$1
  164. .sp \\n()Pu
  165. .ne 2
  166. .nr )R 0
  167. .fi
  168. .it 1 }N
  169. .B
  170. ..
  171. '    # end of SH (cf }X above and }N below)
  172. .de }2
  173. .nr )E 0
  174. .}E
  175. .nr )I .5i
  176. .ns
  177. ..
  178. '    # italic
  179. .de I
  180. .ft 2
  181. .it 1 }N
  182. .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
  183. ..
  184. '    # bold
  185. .de B
  186. .ft 3
  187. .it 1 }N
  188. .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
  189. ..
  190. '    # small
  191. .de SM
  192. .ps 9
  193. .it 1 }N
  194. .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
  195. ..
  196. '    # combinations of Roman, italic, bold
  197. .de RI
  198. .}S 1 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  199. ..
  200. .de RB
  201. .}S 1 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  202. ..
  203. .de IR
  204. .}S 2 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  205. ..
  206. .de IB
  207. .}S 2 3 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  208. ..
  209. .de BR
  210. .}S 3 1 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  211. ..
  212. .de BI
  213. .}S 3 2 \& "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6"
  214. ..
  215. '    # make special case of shift out of italic
  216. .de }S
  217. .ds ]F
  218. .if "\\$1"2" .if !"\\$5"" .ds ]F\^
  219. .ie !"\\$4"" .}S \\$2 \\$1 "\\$3\f\\$1\\$4\\*(]F" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
  220. .el \\$3
  221. .}f
  222. ..
  223. '    # paragraph
  224. .de LP
  225. .PP
  226. ..
  227. .de PP
  228. .sp \\n()Pu
  229. .ne 1.1v
  230. .}E
  231. .nr )I .5i
  232. .ns
  233. ..
  234. '    # synonym for .PP
  235. .de P
  236. .PP
  237. ..
  238. '    # paragraph distance
  239. .de PD
  240. .if t .nr )P .4v
  241. .if n .nr )P 1v
  242. .if !"\\$1"" .nr )P \\$1v
  243. ..
  244. '    # paragraph with hanging indent
  245. .de HP
  246. .sp \\n()Pu
  247. .ne 1.1v
  248. .if !"\\$1"" .nr )I \\$1n
  249. .ll \\n(LLu
  250. .in \\n()Ru+\\n(INu+\\n()Iu
  251. .ti \\n()Ru+\\n(INu
  252. .}f
  253. ..
  254. '    # indented paragraph
  255. .de IP
  256. .TP \\$2
  257. \&\\$1
  258. ..
  259. '    # tagged paragraph (paragraph with hanging label)
  260. .de TP
  261. .if !"\\$1"" .nr )I \\$1n
  262. .sp \\n()Pu
  263. .ne 1.1v
  264. .in \\n()Ru
  265. .nr )E 1
  266. .ns
  267. .it 1 }N
  268. .di ]B
  269. ..
  270. '    # end of TP (cf }N below)
  271. .de }1
  272. .ds ]X \&\\*(]B\\
  273. .nr )E 0
  274. .if !"\\$1"" .nr )I \\$1n
  275. .}f
  276. .ll \\n(LLu
  277. .in \\n()Ru+\\n(INu+\\n()Iu
  278. .ti \\n(INu
  279. .ie !\\n()Iu+\\n()Ru-\w@\\*(]X@u-3p \{\\*(]X
  280. .br\}
  281. .el \\*(]X\h@|\\n()Iu+\\n()Ru@\c
  282. .}f
  283. ..
  284. '    # handle end of 1-line features
  285. .de }N
  286. .if \\n()E .br
  287. .di
  288. .if "\\n()E"0" .}f
  289. .if "\\n()E"1" .}1
  290. .if "\\n()E"2" .}2
  291. .nr )E 0
  292. ..
  293. '    # increase relative indent
  294. .de RS
  295. .nr ]\\n+()p \\n()I
  296. .nr )\\n()p \\n()R
  297. .ie !"\\$1"" .nr )R +\\$1n
  298. .el .nr )R +\\n()I
  299. .nr )I .5i
  300. .}E
  301. ..
  302. .de DS
  303. .RS
  304. .nf
  305. .sp
  306. ..
  307. '    # decrease relative indent
  308. .de RE
  309. .if !"\\$1"" \{.ie "\\$1"0" .nr )p 1 1
  310. .        el .nr )p \\$1 1\}
  311. .ds ]i \\*(]I\\n()p
  312. .ds ]r \\*(]R\\n()p
  313. .nr )I \\*(]i
  314. .nr )R \\*(]r
  315. .if \\n()p .nr )p -1
  316. .}E
  317. ..
  318. .de DE
  319. .fi
  320. .RE
  321. .sp.5
  322. ..
  323. .nr )p 0 1
  324. .ds ]I \\\\n(]
  325. .ds ]R \\\\n()
  326. .bd S B 3
  327. .if t .ds R \(rg
  328. .if n .ds R (Reg.)
  329. .ds S \s10
  330. .hy 14
  331. .if "\*(.T"va" .po -0.4i
  332. .\" This file contains extra Ditroff macros used in Sprite man pages:
  333. .\"
  334. .\" .HS name section [date [version]]
  335. .\"    Replacement for .TH in other man pages.  See below for valid
  336. .\"    section names.
  337. .\"
  338. .\" .LG
  339. .\"    Increase font size;  opposite of .SM
  340. .\"
  341. .\" .AP type name in/out [indent]
  342. .\"    Start paragraph describing an argument to a library procedure.
  343. .\"    type is type of argument (int, etc.), in/out is either "in", "out",
  344. .\"    or "in/out" to describe whether procedure reads or modifies arg,
  345. .\"    and indent is equivalent to second arg of .IP (shouldn't ever be
  346. .\"    needed;  use .AS below instead)
  347. .\"
  348. .\" .AS [type [name]]
  349. .\"    Give maximum sizes of arguments for setting tab stops.  Type and
  350. .\"    name are examples of largest possible arguments that will be passed
  351. .\"    to .AP later.  If args are omitted, default tab stops are used.
  352. .\"
  353. .\" .BS
  354. .\"    Start box enclosure.  From here until next .BE, everything will be
  355. .\"    enclosed in one large box.
  356. .\"
  357. .\" .BE
  358. .\"    End of box enclosure.
  359. .\"
  360. .\" .VS
  361. .\"    Begin vertical sidebar, for use in marking newly-changed parts
  362. .\"    of man pages.
  363. .\"
  364. .\" .VE
  365. .\"    End of vertical sidebar.
  366. .\"
  367. '    # Heading for Sprite man pages
  368. .de HS
  369. .PD
  370. .DT
  371. .AS
  372. .if n .nr IN .5i
  373. .if t .nr IN .5i
  374. .nr LL \\n(.l
  375. .ds ]S UNKNOWN SECTION (\\$2)
  376. .if '\\$2'cmds'       .ds ]S User Commands
  377. .if '\\$2'lib'        .ds ]S C Library Procedures
  378. .if '\\$2'dev'        .ds ]S Devices
  379. .if '\\$2'tcl'        .ds ]S Tcl Command Language Library
  380. .if '\\$2'admin'      .ds ]S Administrative Commands
  381. .if '\\$2'daemons'    .ds ]S Daemons
  382. .if '\\$2'files'      .ds ]S File Formats
  383. .ds ]H \\$1
  384. .ds ]D \\*(]S
  385. .ie '\\$3'' .ds ]L  Printed:\\ \\ \\*(DY
  386. .el         .ds ]L  Modified:\\ \\ \\$3
  387. .if t .ie '\\$4'' .ds ]W Sprite version 1.0
  388. .if t .el         .ds ]W Sprite version \\$4
  389. .if n .ie '\\$4'' .ds ]W Sprite v.1.0
  390. .if n .el         .ds ]W Sprite v.\\$4
  391. .if !"\\$3"" .ds ]L \\$3
  392. .wh 0 }H
  393. .if t .wh -1i }B
  394. .if n .wh -1.167i }F
  395. .if \\n(nl .bp 1
  396. .em }M
  397. .}E
  398. .DT
  399. .nr )I .5i
  400. .nr )R 0
  401. ..
  402. '    # Increase point size 1 tick
  403. .de LG
  404. .ps +1
  405. .it 1 }N
  406. .if !"\\$1"" \&\\$1 \\$2 \\$3 \\$4 \\$5 \\$6
  407. ..
  408. '    # Start an argument description
  409. .de AP
  410. .ie !"\\$4"" .TP \\$4
  411. .el \{\
  412. .   ie !"\\$2"" .TP \\n()Cu
  413. .   el          .TP 15
  414. .\}
  415. .ie !"\\$3"" \{\
  416. .ta \\n()Au \\n()Bu
  417. \&\\$1    \\fI\\$2\\fP    (\\$3)
  418. .\".b
  419. .\}
  420. .el \{\
  421. .br
  422. .ie !"\\$2"" \{\
  423. \&\\$1    \\fI\\$2\\fP
  424. .\}
  425. .el \{\
  426. \&\\fI\\$1\\fP
  427. .\}
  428. .\}
  429. .DT
  430. ..
  431. '    # define tabbing values for .AP
  432. .de AS
  433. .nr )A 10n
  434. .if !"\\$1"" .nr )A \\w'\\$1'u+3n
  435. .nr )B \\n()Au+15n
  436. .\"
  437. .if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n
  438. .nr )C \\n()Bu+\\w'(in/out)'u+2n
  439. ..
  440. '    # BS - start boxed text
  441. .de BS
  442. .br
  443. .mk )a
  444. .ds )b 1
  445. .if n .nf
  446. .if n .ti 0
  447. .if n \l'\\n(.lu\(ul'
  448. .if n .fi
  449. ..
  450. '    # Special macro to handle page bottom:  finish off current
  451. '    # box/sidebar if in box/sidebar mode, then invoked standard
  452. '    # page bottom macro.
  453. .de }B
  454. .if '\\*()b'1' \{\
  455. .ev 1
  456. 'ti 0
  457. 'nf
  458. .if t \h'-1.5n'\L'|\\n()au-1.5v'\l'\\n(.lu+3n\(ul'\L'-|\\n()au+1.5v'\l'|0u-1.5n\(ul'
  459. 'sp -1
  460. .ev
  461. 'fi
  462. .\}
  463. .if '\\*()v'2' \{\
  464. .if t \{\
  465. .ev 1
  466. 'ti 0
  467. 'nf
  468. .br
  469. \h'\\n(.lu+3n'\v'-1v'\L'|\\n()bu-1v\(br'\v'-|\\n()bu+2v'\h'|0u'
  470. 'sp -1
  471. 'fi
  472. .ev
  473. .\}
  474. .\}
  475. .}F
  476. ..
  477. '    # What to do when the head of the page occurs during boxed text
  478. '    # or vertical sidebar: update starting position for box/sidebar.
  479. .am }H
  480. .mk )a
  481. .mk )b
  482. ..
  483. '    # BE - end boxed text (draw box now)
  484. .de BE
  485. .sp -1
  486. .nf
  487. .ti 0
  488. .ie n \l'\\n(.lu\(ul'
  489. .el \{
  490. \h'-1.5n'\L'|\\n()au-1.5v'\l'\\n(.lu+3n\(ul'\L'-|\\n()au+1.5v'\l'|0u-1.5n\(ul'
  491. .\"   \h = move left 1.5n
  492. .\"   \L = draw up,   len=  )a units + 1.5v 
  493. .\"    \L draws a line, arg = distance. if negative, draws up.
  494. .\"    The position in reg. )a is used to draw the vertical lines.
  495. .\"      |\\n)au = distance from current loc. to )a (negative distance)
  496. .\"      -1.5v   = distance above )a since there is text at )a's location
  497. .\"   \l = draw right, len= cur. line length + 3n using underrule
  498. .\"   \L = draw down, len=  )a units + 1.5v 
  499. .\"   \l = draw left, back to original spot
  500. .\}
  501. .fi
  502. .br
  503. .ds )b 0
  504. ..
  505. '    # VS - start vertical sidebar
  506. .de VS
  507. .mk )b
  508. .if n 'mc \s12\(br\s0
  509. .if t \{\
  510. .ds )v 2
  511. .\}
  512. ..
  513. '    # VE - end of vertical sidebar
  514. .de VE
  515. .if n 'mc
  516. .if t \{\
  517. .ev 1
  518. .nf
  519. .ti 0
  520. \h'|\\n(.lu+3n'\L'|\\n()bu-1v\(bv'\v'-|\\n()bu+1v'\h'-|\\n(.lu+3n'
  521. .sp -1
  522. .fi
  523. .ev
  524. .\}
  525. .ds )v 0
  526. ..
  527. .\"
  528. .\"  Define the string DY to be the current date
  529. .\"  format:  month day, year
  530. .\"
  531. .if \n(mo-0 .ds MO January
  532. .if \n(mo-1 .ds MO February
  533. .if \n(mo-2 .ds MO March
  534. .if \n(mo-3 .ds MO April
  535. .if \n(mo-4 .ds MO May
  536. .if \n(mo-5 .ds MO June
  537. .if \n(mo-6 .ds MO July
  538. .if \n(mo-7 .ds MO August
  539. .if \n(mo-8 .ds MO September
  540. .if \n(mo-9 .ds MO October
  541. .if \n(mo-10 .ds MO November
  542. .if \n(mo-11 .ds MO December
  543. .ds DY \*(MO \n(dy, 19\n(yr
  544.